home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / bc_pas_2.zip / COMMON.H < prev    next >
Text File  |  1992-09-04  |  23KB  |  546 lines

  1. /*$Author:   DCODY  $*/
  2. /*$Date:   04 Sep 1992 16:40:38  $*/
  3. /*$Header:   X:/sccs/inc/common.h_v   1.3   04 Sep 1992 16:40:38   DCODY  $*/
  4. /*$Log:   X:/sccs/inc/common.h_v  $
  5.  * 
  6.  *    Rev 1.3   04 Sep 1992 16:40:38   DCODY
  7.  * 
  8.  *    Rev 1.2   15 Jul 1992 15:56:52   DCODY
  9.  * 
  10.  *    Rev 1.1   25 Jun 1992 23:22:50   DCODY
  11.  * PAS2 update
  12.  * 
  13.  *    Rev 1.0   15 Jun 1992 09:58:36   BCRANE
  14.  * Initial revision.
  15. */
  16. /*$Logfile:   X:/sccs/inc/common.h_v  $*/
  17. /*$Modtimes$*/
  18. /*$Revision:   1.3  $*/
  19. /*$Workfile:   common.h  $*/
  20.  
  21. ;   /*\
  22. ;---|*|----====< COMMON.H >====----
  23. ;---|*|
  24. ;---|*| This file contains the Media Vision hardware definition equates, and.
  25. ;---|*| the PC hardware environment.
  26. ;---|*|
  27. ;---|*| Copyright (c) 1991, Media Vision, Inc.    All Rights Reserved.
  28. ;---|*|
  29. ;   \*/
  30.  
  31.     /* Hardware associated with the product                 */
  32.  
  33. #define DEFAULT_BASE    0x0388        /* default base I/O address        */
  34. #define ALT_BASE_1    0x0384        /* first alternate address        */
  35. #define ALT_BASE_2    0x038C        /* second alternate address        */
  36. #define ALT_BASE_3    0x0288        /* third alternate address        */
  37. #define USE_ACTIVE_ADDR 0x0000        /* uses what is currently active    */
  38.  
  39. #define DUALFM        1        /* Dual FM chips            */
  40. #define DUALMIXER    1        /* Dual mixers                */
  41. #define FILTER        1        /* Has filter after input mixer     */
  42. #define VOLUME        1        /* Has total volume control        */
  43.  
  44. #define TEXTVERSIONHI    '01'            /* VERSION 01.00                        */
  45. #define TEXTVERSIONLO    '00'
  46.  
  47. #define SYSSPKRTMR      0x0042          /* System Speaker Timer Address         */
  48. #define SYSTMRCTLR    0x0043        /* System Timer Control Register    */
  49. #define SYSSPKRREG    0x0061        /* System Speaker Register        */
  50. #define JOYSTICK    0x0201        /* Joystick Register            */
  51. #define LFMADDR     0x0388        /* Left  FM Address Register        */
  52. #define LFMDATA     0x0389        /* Left  FM Data Register        */
  53. #define RFMADDR     0x038A        /* Right FM Address Register        */
  54. #define RFMDATA     0x038B        /* Right FM Data Register        */
  55.  
  56. #define AUXADDR     0x0788        /* Auxiliary Register            */
  57. #define AUXDATA     0x0789        /* Auxiliary Register            */
  58. #define DFMADDR     0x0788        /* Dual  FM Address Register        */
  59. #define DFMDATA     0x0789        /* Dual  FM Data Register        */
  60.  
  61. #define PAUDIOMIXR    0x078B        /* Parallel interface Audio Mixer Reg    */
  62. #define AUDIOMIXR       0x0B88          /* Audio Mixer Control Register         */
  63. #define AUDIOFILT    0x0B8A        /* Audio Filter Control Register    */
  64. #define INTRCTLRST    0x0B89        /* Interrupt Control Register        */
  65. #define INTRCTLR    0x0B8B        /* Interrupt Control Register        */
  66. #define INTRCTLRRB    0x0B8B        /* Interrupt Control Register read back */
  67. #define PCMDATA     0x0F88        /* PCM data I/O register        */
  68. #define PCMDATAH    0x0F89        /* PCM data I/O register        */
  69. #define CROSSCHANNEL    0x0F8A        /* Cross Channel Register        */
  70. #define SAMPLERATE    0x1388        /* (t0) Sample Rate Timer Register    */
  71. #define SAMPLECNT    0x1389        /* (t1) Sample Count Register        */
  72. #define SPKRTMR     0x138A        /* (t2) Local Speaker Timer Address    */
  73. #define TMRCTLR     0x138B        /* Local Timer Control Register     */
  74. #define MDIRQVECT    0x1788        /* MIDI IRQ Vector Register        */
  75. #define MDSYSCTLR    0x1789        /* MIDI System Control Register     */
  76. #define MDSYSSTAT    0x178A        /* MIDI IRQ Status Register        */
  77. #define MDIRQCLR    0x178B        /* MIDI IRQ Clear Register        */
  78. #define MDGROUP4    0x1B88        /* MIDI Group #1 Register (MDGROUP1)    */
  79. #define MDGROUP5    0x1B89        /* MIDI Group #2 Register (MDGROUP2)    */
  80. #define MDGROUP6    0x1B8A        /* MIDI Group #3 Register (MDGROUP3)    */
  81. #define MDGROUP7    0x1B8B        /* MIDI Group #4 Register (MDGROUP4)    */
  82.  
  83. /*                                        */
  84. /* Factory Default Settings                            */
  85. /*                                        */
  86. #define DEFAULTDMA    0x01        /* DMA channel 1            */
  87. #define DEFAULTIRQ    0x07        /* IRQ channel 7            */
  88. #define DEFAULTINT    0x65        /* Interrupt # for software interface    */
  89.  
  90. /*                                        */
  91. /* mixer select                                 */
  92. /*                                        */
  93. #define OUTPUTMIXER    0x00        /* output mixer H/W select        */
  94. #define INPUTMIXER    0x40        /* input mixer select            */
  95. #define DEFMIXER    -1        /* use last mixer selected        */
  96. #define MIXERMAX    0x1f        /* maximum mixer setting        */
  97.  
  98. #define MVVOLUMEMAX    0x3f        /* MVA508 maximum mixer setting     */
  99. #define NSVOLUMEMAX    0x28        /* National maximum mixer setting    */
  100.  
  101. #define EQUALIZERMAX    0x0c        /* maximum equalizer setting        */
  102. #define EQUALIZERMID    0x06        /* maximum mid setting            */
  103.  
  104. /*                                                                              */
  105. /* Filter register bits                             */
  106. /*                                        */
  107. #define fFIdatabits    0x1f        /* filter select and decode field bits    */
  108. #define fFImutebits    0x20        /* filter mute field bits        */
  109. #define fFIpcmbits    0xc0        /* filter sample rate field bits    */
  110. #define bFImute     0x20        /* filter mute bit            */
  111. #define bFIsrate    0x40        /* filter sample rate timer mask    */
  112. #define bFIsbuff    0x80        /* filter sample buffer counter mask    */
  113. #define FILTERMAX       6        /* six possible settings        */
  114.  
  115. /*                                        */
  116. /* Cross Channel Bit definitions                        */
  117. /*                                        */
  118. #define fCCcrossbits    0x0f        /* cross channel bit field        */
  119. #define fCCpcmbits    0xf0        /* pcm/dma control bit field        */
  120. #define bCCr2r        0x01        /* CROSSCHANNEL Right to Right        */
  121. #define bCCl2r        0x02        /* CROSSCHANNEL Left  to Right        */
  122. #define bCCr2l        0x04        /* CROSSCHANNEL Right to Right        */
  123. #define bCCl2l        0x08        /* CROSSCHANNEL Left  to Left        */
  124. #define bCCdac        0x10        /* DAC/ADC Control            */
  125. #define bCCmono     0x20        /* PCM Monaural Enable            */
  126. #define bCCenapcm    0x40        /* Enable PCM state machine        */
  127. #define bCCdrq        0x80        /* Enable DRQ bit            */
  128.  
  129. /*                                        */
  130. /* Interrupt Control Register Bits                        */
  131. /*                                        */
  132. #define fICintmaskbits    0x1f        /* interrupt mask field bits        */
  133. #define fICrevbits    0xe0        /* revision mask field bits        */
  134. #define fICidbits    0xe0        /* Board revision ID field bits     */
  135. #define bICleftfm    0x01        /* Left FM interrupt enable        */
  136. #define bICritfm    0x02        /* Right FM interrupt enable        */
  137. #define bICsamprate    0x04        /* Sample Rate timer interrupt enable    */
  138. #define bICsampbuff    0x08        /* Sample buffer timer interrupt enable */
  139. #define bICmidi     0x10        /* MIDI interrupt enable        */
  140. #define    fICrevrol    0x05        /* rotate rev bits to lsb        */
  141.  
  142. /*                                        */
  143. /* Interrupt Status Register Bits                        */
  144. /*                                        */
  145. #define fISints     0x1f        /* Interrupt bit field            */
  146. #define bISleftfm    0x01        /* Left FM interrupt active        */
  147. #define bISritfm    0x02        /* Right FM interrupt active        */
  148. #define bISsamprate    0x04        /* Sample Rate timer interrupt active    */
  149. #define bISsampbuff    0x08        /* Sample buffer timer interrupt active */
  150. #define bISmidi     0x10        /* MIDI interrupt active        */
  151. #define bISPCMlr    0x20        /* PCM left/right active        */
  152. #define bISActive    0x40        /* Hardware is active (not in reset)    */
  153. #define bISClip     0x80        /* Sample Clipping has occured        */
  154.  
  155. /*                                        */
  156. /*     cross channel channel #s                        */
  157. /*                                        */
  158. #define RIGHT2RIGHT    0x00        /* right to right            */
  159. #define LEFT2RIGHT    0x01        /* left  to right            */
  160. #define RIGHT2LEFT    0x02        /* right to left            */
  161. #define LEFT2LEFT    0x03        /* left  to left            */
  162.  
  163. /*                                        */
  164. /* left/right mixer channel selection                        */
  165. /*                                        */
  166.  
  167. /*    left channel values                            */
  168.  
  169. #define L_LEFTFM    0x01
  170. #define L_IMIXER    0x02
  171. #define L_EXT        0x03
  172. #define L_INT        0x04
  173. #define L_MIC        0x05
  174. #define L_PCM        0x06
  175. #define L_SPEAKER    0x07
  176. #define L_FREE        0x00
  177. #define L_SBDAC         0x00
  178.  
  179. /*    right channel values                            */
  180.  
  181. #define R_RIGHTFM    0x08
  182. #define R_IMIXER    0x09
  183. #define R_EXT        0x0A
  184. #define R_INT        0x0B
  185. #define R_MIC        0x0C
  186. #define R_PCM        0x0D
  187. #define R_SPEAKER    0x0E
  188. #define R_FREE        0x0F
  189. #define R_SBDAC     0x0F
  190.  
  191. /*    Mixer register bits                            */
  192.  
  193. #define fMImixerbits    0x17        /* mixer control bit fields        */
  194. #define fMIspkrbits    0x40        /* speaker integrator field bits    */
  195. #define bMIdata     0x01        /* data bit                */
  196. #define bMIclock    0x02        /* clock strobe             */
  197. #define bMImistrb    0x04        /* mixer output strobe            */
  198. #define bMIna1        0x08        /* not used                */
  199. #define bMIvol        0x10        /* total volume enabled         */
  200. #define bMIna2        0x20        /* not used                */
  201. #define bMIspkrint    0x40        /* speaker integrator            */
  202. #define bMImonofm    0x80        /* make both FMs mono            */
  203.  
  204. #define bMIfmreset    bMIdata     /* OPL3 FM chip reset            */
  205. #define bMIdacreset    bMIclock    /* CODEC reset                */
  206. #define bMIsbreset    bMImistrb    /* SB microprocessor reset        */
  207. #define bMI508reset    bMIvol        /* MVA508 reset             */
  208.  
  209. /*    Volume control channel #s                        */
  210.  
  211. #define VOLMUTE     0x40        /* MUTE button                */
  212. #define VOLLOUDENH    0x41        /* LOUDNESS and ENHANCED STEREO switch    */
  213. #define VOLBASS     0x42        /* BASS level setting            */
  214. #define VOLTREBLE    0x43        /* TREBLE level setting         */
  215. #define VOLLEFT     0x44        /* MASTER LEFT LEVEL settting        */
  216. #define VOLRIGHT    0x45        /* MASTER RIGHT LEVEL settting        */
  217. #define VOLMODE     0x46        /* Model Select Left/Stereo/Right    */
  218.  
  219. #define bVOLEbass    0x01        /* enhanced bass bit            */
  220. #define bVOLEstereo    0x02        /* enhanced stereo bit            */
  221.  
  222. /*    output control                                */
  223.  
  224. #define pmADDRSELECT    0x80        /* Parallel mixer addr select        */
  225. #define pmDATASELECT    0x00        /* Parallel mixer data select        */
  226.  
  227. /*    mixer channel programming selection                    */
  228.  
  229. #define pmCHANNELLR    0x00        /* Left/Right channel select        */
  230. #define pmCHANNELL    0x20        /* Left  channel only select        */
  231. #define pmCHANNELR    0x40        /* Right channel only select        */
  232.  
  233. /*    device select                                */
  234.  
  235. #define pmMIXERSELECT    0x10        /* Parallel Mixer device select     */
  236. #define pmVOLUMESELECT    0x00        /* Parallel Volume device select    */
  237.  
  238. /*    Volume Device selects                            */
  239.  
  240. #define pmVOLUMEA    0x01        /* Left/Right channel select        */
  241. #define pmVOLUMEB    0x02        /* Left/Right channel select        */
  242. #define pmVOLUMEBASS    0x03        /* Left/Right channel select        */
  243. #define pmVOLUMETREB    0x04        /* Left/Right channel select        */
  244. #define pmVOLUMEMODE    0x05        /* Left/Right channel select        */
  245.  
  246. /*    mixer selection                             */
  247.  
  248. #define pmINPUTMIXER    0x00        /* Mixer-A selection            */
  249. #define pmOUTPUTMIXER    0x20        /* Mixer-B selection            */
  250.  
  251. /*    mixer channel swap                            */
  252.  
  253. #define pmCHSWAP    0x40        /* Mixer channel reroute        */
  254.  
  255. /*    int 2F application ID codes                        */
  256.  
  257. #define INT2FCODE1    0x00BC        /* Bryan's initials                     */
  258.  
  259. /*    int 2F ID (func 0) return register values                */
  260.  
  261. #define INT2FREGBX    0x6D00        /* 'm '                                 */
  262. #define INT2FREGCX    0x0076        /* ' v'                                 */
  263. #define INT2FREGDX    0x2020        /* UPPERCASE XOR MASK            */
  264.  
  265. /* hardware specific equates for the PAS2/CDPC (digital ASIC)            */
  266.  
  267. #define MASTERADDRP    0x9A01        /* Master Address Pointer    (w)    */
  268. #define MIDIPRESCALE    0x1788        /* MIDI prescale         (r/w)    */
  269. #define MIDITIMER    0x1789        /* MIDI Timer             (r/w)    */
  270. #define MIDIDATA    0x178A        /* MIDI Data             (r/w)    */
  271. #define MIDICONTROL    0x178B        /* MIDI Control          (r/w)    */
  272. #define MIDISTATUS    0x1B88        /* MIDI Status             (r/w)    */
  273. #define MIDIFIFOS    0x1B89        /* MIDI Fifo Status         (r/w)    */
  274. #define MIDICOMPARE    0x1B8A        /* MIDI Compare Time         (r/w)    */
  275. #define MIDITEST    0x1B8B        /* MIDI Test             (w)    */
  276. #define MASTERCHIPR    0xFF88        /* Master Chip Rev         (r)    */
  277. #define SLAVECHIPR    0xEF88        /* Slave Chip Rev         (r)    */
  278. #define ENHANCEDSCSI    0x7f89        /* Enhanced SCSI detect port        */
  279. #define SYSCONFIG1      0x8388          /* System Config 1           (r/w)      */
  280. #define SYSCONFIG2    0x8389        /* System Config 2         (r/w)    */
  281. #define SYSCONFIG3    0x838A        /* System Config 3         (r/w)    */
  282. #define SYSCONFIG4    0x838B        /* System Config 4         (r/w)    */
  283. #define IOCONFIG1    0xF388        /* I/O Config 1          (r/w)    */
  284. #define IOCONFIG2    0xF389        /* I/O Config 2          (r/w)    */
  285. #define IOCONFIG3    0xF38A        /* I/O Config 3          (r/w)    */
  286. #define IOCONFIG4    0xF38B        /* I/O Config 4          (r/w)    */
  287. #define COMPATREGE    0xF788        /* Compatible Rgister Enable (r/w)    */
  288. #define EMULADDRP    0xF789        /* Emulation Address Pointer (r/w)    */
  289. #define WAITSTATE    0xBF88        /* Wait State             (r/w)    */
  290. #define PUSHBUTTON    0xE388        /* Push Button (slave)         (???)    */
  291. #define AXUINTSTAT    0xE38A        /* Aux Int Status         (???)    */
  292. #define AUXINTENA    0xE38B        /* Aux Int Enable         (???)    */
  293. #define OVRSMPPRE    0xBF8A        /* Over Sample Prescale      (r/w)    */
  294. #define ANALSERD    0xBF89        /* Analog Chip Serial Data   (w)    */
  295. #define MASTERMODRD    0xFF8B        /* Master Mode Read         (r)    */
  296. #define SLAVEMODRD    0xEF8B        /* Slave Mode Read         (r)    */
  297. #define INTWATCHDOG    0xFB8B        /* Interrupt Watch Dog         (???)    */
  298. #define MASTERuPDATA    0xFB88        /* Master uP Data         (???)    */
  299. #define MASTERuPCMD    0xFB89        /* Master uP Command/Status  (???)    */
  300. #define MASTERuPRST    0xFB8A        /* Master uP Restart         (???)    */
  301. #define SLAVEuPDATA    0xEB88        /* Slave uP Data         (???)    */
  302. #define SLAVEuPCMD    0xEB88        /* Slave uP Command/Status   (???)    */
  303. #define SLAVEuPRST    0xEB88        /* Slave uP Restart         (???)    */
  304. #define CDTOCOUNTER    0x4388        /* CD-ROM timeout counter    (r/w)    */
  305. #define CDTOSTAT    0x4389        /* CD-ROM timeout status     (r/w)    */
  306. #define LEFTVURD    0x2388        /* Left VU Read          (r)    */
  307. #define RITVURD     0x2389        /* Right VU Read         (r)    */
  308.  
  309. #define SBRST        0x0206        /* SB Reset             (w)    */
  310. #define SBDATA        0x020A        /* SB Data Read          (r)    */
  311. #define SBCMD        0x020C        /* SB CMD Write/Status Read  (r/w)    */
  312. #define SBSTAT        0x020E        /* SB Data Status         (r)    */
  313. #define MPUDATA     0x0300        /* MPU-401 data reg         (r/w)    */
  314. #define MPUCMD        0x0301        /* MPU-401 command reg         (r/w)    */
  315.  
  316. /* Sys Config 1                                 */
  317.  
  318. #define bSC1timena    0x01        /* shadow enable            */
  319. #define bSC1pcmemu    0x02        /* PCM Emulation of PAS1        */
  320. #define bSC128mhz    0x04        /* 28mhz clock divisor            */
  321. #define bSC1invcom    0x08        /* invert COM port interrupt input    */
  322. #define bSC1stspea    0x10        /* stereoize pc speaker         */
  323. #define bSC1realsnd    0x20        /* smart real sound emulatio        */
  324. #define bSC1d6        0x40
  325. #define bSC1mstrst    0x80        /* master chip reset            */
  326.  
  327. /* Sys Config 2                                 */
  328.  
  329. #define bSC2ovrsmp    0x03        /* oversampling 0,1,2,4         */
  330. #define bSC216bit    0x04        /* 16 bit audio             */
  331. #define bSC212bit    0x08        /* 12 bit interleaving (d2 must be set) */
  332. #define bSC2msbinv    0x10        /* invert MSB from standard method    */
  333. #define bSC2slavport    0x60        /* slave port bits            */
  334. #define bSC2vcolock    0x80        /* VCO locked (Sample Rate Clock Valid) */
  335.  
  336. /* Sys Config 3
  337.  
  338. #define bSC328mhzfil    0x01        /* PCM Rate uses 28mhz            */
  339. #define bSC31mhzsb    0x02        /* 1mhz timer for SB sample rate    */
  340. #define bSC3vcoinv    0x04        /* invert VCO output            */
  341. #define bSC3bclkinv    0x08        /* invert BCLK form 16 bit DAC        */
  342. #define bSC3lrsync    0x10        /* 0=L/R, 1 = Sync Pulse        */
  343. #define bSC3d5        0x20
  344. #define bSC3d6        0x40
  345. #define bSC3d7        0x80
  346.  
  347. /* Sys Config 4                                 */
  348.  
  349. #define bSC4drqahi    0x01        /* DRQ from drive active high        */
  350. #define bSC4dackahi    0x02        /* DRQ from drive active high        */
  351. #define bSC4intahi    0x04        /* INT from drive active high        */
  352. #define bSC4drqvalid    0x08        /* DRQ line valid from drive        */
  353. #define bSC4comena    0x10        /* enable COM interrupt         */
  354. #define bSC4enascsi    0x20        /* enable SCSI interrupt        */
  355. #define bSC4drqptr    0xc0        /* DRQ timing pointer bits        */
  356.  
  357. /* I/O Config 1                                 */
  358.  
  359. #define bIC1ps2ena    0x01        /* Enable Chip (PS2 only)        */
  360. #define bIC1comdcd    0x06        /* COM port decode pointer        */
  361. #define bIC1comint    0x38        /* COM port interrupt pointer        */
  362. #define bIC1joyena    0x40        /* Enable joystick read         */
  363. #define bIC1wporena    0x80        /* Enable warm boot reset        */
  364.  
  365. /* I/O Config 2                                 */
  366.  
  367. #define bIC2dmaptr    0x03        /* DMA channel select            */
  368.  
  369. #define bIC28dmaptr    0x0f        /*  8 bit DMA channel select        */
  370. #define bIC216dmaptr    0xf0        /* 16 bit DMA channel select        */
  371.  
  372. /* I/O Config 3                                 */
  373.  
  374. #define bIC3pcmint    0x0f        /* pcm IRQ channel select        */
  375. #define bIC3cdint    0xf0        /* cd  IRQ channel select        */
  376.  
  377. /* Compatibility Register                            */
  378.  
  379. #define cpMPUEmulation    0x01        /* MPU emuation is on bit        */
  380. #define cpSBEmulation    0x02        /* SB emuation is on bit        */
  381.  
  382. /* Emulation Address Pointer                            */
  383.  
  384. #define epSBptr     0x0F        /* bit field for SB emulation        */
  385. #define epMPUptr    0xF0        /* bit field for MPU emulation        */
  386.  
  387. /* Slave Mode Read                                */
  388.  
  389. #define bSMRDdrvtyp    0x03        /* drive interface type         */
  390. #define bSMRDfmtyp    0x04        /* FM chip type             */
  391. #define bSMRDdactyp    0x08        /* 16 bit dac (1) or 8 bit dac (0)    */
  392. #define bSMRDimidi    0x10        /* use internal MIDI            */
  393. #define bSMRDswrep    0x80        /* switch is auto repeating        */
  394.  
  395. /* Master Mode Read                                */
  396.  
  397. #define bMMRDatps2    0x01        /* AT(1) or PS2(0) bus            */
  398. #define bMMRDtmremu    0x02        /* timer emulation enabled        */
  399. #define bMMRDmsmd    0x04        /* master/slave mode            */
  400. #define bMMRDslave    0x08        /* slave power on or device present    */
  401. #define bMMRDattim    0x10        /* xt/at timing             */
  402. #define bMMRDmstrev    0xe0        /* master  rev level            */
  403.  
  404. /* MIDI Control Register                            */
  405.  
  406. #define bMCRenatstmp    0x01        /* MIDI enable time stamp interrupt    */
  407. #define bMCRenacmptm    0x02        /* MIDI enable compare time interrupt    */
  408. #define bMCRenafifoi    0x04        /* MIDI enable FIFO input interrupt    */
  409. #define bMCRenafifoo    0x08        /* MIDI enable FIFO output interrupt    */
  410. #define bMCRenafifooh    0x10        /* MIDI enable FIFO output half int    */
  411. #define bMCRrstfifoi    0x20        /* MIDI reset Input FIFO pointer    */
  412. #define bMCRrstfifoo    0x40        /* MIDI reset Output FIFO pointer    */
  413. #define bMCRechoio    0x80        /* MIDI echo input to output (THRU)    */
  414.  
  415. /* MIDI Status Register                             */
  416.  
  417. #define bMSRtimstamp    0x01        /* MIDI time stamp interrupt        */
  418. #define bMSRcmptime    0x02        /* MIDI compare time interrupt        */
  419. #define bMSRififo    0x04        /* MIDI input FIFO data avail interrupt */
  420. #define bMSRofifo    0x08        /* MIDI output FIFO empty interrupt    */
  421. #define bMSRofifohalf    0x10        /* MIDI output FIFO half empty interrupt*/
  422. #define bMSRififoovr    0x20        /* MIDI input FIFO overrun error    */
  423. #define bMSRofifoovr    0x40        /* MIDI output FIFO overrun error    */
  424. #define bMSRframeerr    0x80        /* MIDI frame error            */
  425.  
  426. /* MIDI FIFO count                                */
  427.  
  428. #define bMFCififo    0x0F        /* MIDI input FIFO count
  429. #define bMFCofifo    0xF0        /* MIDI output FIFO count
  430.  
  431. /* Aux interrupt status/enable                                                  */
  432.  
  433. #define bAUfmrit    0x01        /* FM right interrupt            */
  434. #define bAUpushb    0x02        /* push button active            */
  435. #define bAUslavecpu    0x04        /* slave coprocessor            */
  436. #define bAUaux0int    0x08        /* aux 0 interrupt            */
  437. #define bAUaux1int    0x10        /* aux 1 interrupt            */
  438. #define bAUaux2int    0x20        /* aux 2 interrupt            */
  439. #define bAUaux3int    0x40        /* aux 3 interrupt            */
  440. #define bAUmastrcpu    0x80        /* master coprocessor or emulation activ*/
  441.  
  442. /* Push Buttons on the Front Panel                        */
  443.  
  444. #define bPSHuparrow    0x01        /* up arrow on the front panel        */
  445. #define bPSHdnarrow    0x02        /* down arrow on the front panel    */
  446. #define bPSHmute    0x04        /* mute on the front panel        */
  447. #define bPSauxbit1    0x08        /* unused bit...            */
  448. #define bPSauxbit2    0x10        /* unused bit...            */
  449. #define bPSauxbit3    0x20        /* unused bit...            */
  450. #define bPSauxbit4    0x40        /* unused bit...            */
  451. #define bPSauxbit5    0x80        /* unused bit...            */
  452.  
  453. /*--------------------------====< PC HARDWARE >====--------------------------*/
  454.  
  455. /* Interrupt Controller #1 Port Addresses and Interrupt Masks            */
  456.  
  457. #define IRQ1MASKREG    0x21        /* 8259 mask register            */
  458. #define IRQ1ACKREG    0x20        /* 8259 INT acknowledge register    */
  459.  
  460. #define INT0MSK     0x01        /* interrupt 0 mask            */
  461. #define INT1MSK     0x02        /* interrupt 1 mask            */
  462. #define INT2MSK     0x04        /* interrupt 2 mask            */
  463. #define INT3MSK     0x08        /* interrupt 3 mask            */
  464. #define INT4MSK     0x10        /* interrupt 4 mask            */
  465. #define INT5MSK     0x20        /* interrupt 5 mask            */
  466. #define INT6MSK     0x40        /* interrupt 6 mask            */
  467. #define INT7MSK     0x80        /* interrupt 7 mask            */
  468.  
  469. /* Interrupt Controller #2 Port Addresses and Interrupt Masks            */
  470.  
  471. #define IRQ2MASKREG    0xA1        /* 8259 mask register            */
  472. #define IRQ2ACKREG    0xA0        /* 8259 INT acknowledge register    */
  473.  
  474. #define INT8MSK     0x01        /* interrupt 8 mask            */
  475. #define INT9MSK     0x02        /* interrupt 9 mask            */
  476. #define INTAMSK     0x04        /* interrupt A mask            */
  477. #define INTBMSK     0x08        /* interrupt B mask            */
  478. #define INTCMSK     0x10        /* interrupt C mask            */
  479. #define INTDMSK     0x20        /* interrupt D mask            */
  480. #define INTEMSK     0x40        /* interrupt E mask            */
  481. #define INTFMSK     0x80        /* interrupt F mask            */
  482.  
  483. #define EOI        020h        /* non specific end of interrupt    */
  484.  
  485. /* dma controller #1 port addresses                        */
  486.  
  487. #define DMAC0ADDR    0x00        /* DMA channel 0 Base & Address     */
  488. #define DMAC0COUNT    0x01        /* DMA channel 0 Base & Count        */
  489. #define DMAC1ADDR    0x02        /* DMA channel 1 Base & Address     */
  490. #define DMAC1COUNT    0x03        /* DMA channel 1 Base & Count        */
  491. #define DMAC2ADDR    0x04        /* DMA channel 2 Base & Address     */
  492. #define DMAC2COUNT    0x05        /* DMA channel 2 Base & Count        */
  493. #define DMAC3ADDR    0x06        /* DMA channel 3 Base & Address     */
  494. #define DMAC3COUNT    0x07        /* DMA channel 3 Base & Count        */
  495.  
  496. #define DMA2C4ADDR    0xC0        /* DMA channel 4 Base & Current Address */
  497. #define DMA2C4COUNT    0xC2        /* DMA channel 4 Base & Current Count    */
  498. #define DMA2C5ADDR    0xC4        /* DMA channel 5 Base & Current Address */
  499. #define DMA2C5COUNT    0xC6        /* DMA channel 5 Base & Current Count    */
  500. #define DMA2C6ADDR    0xC8        /* DMA channel 6 Base & Current Address */
  501. #define DMA2C6COUNT    0xCA        /* DMA channel 6 Base & Current Count    */
  502. #define DMA2C7ADDR    0xCC        /* DMA channel 7 Base & Current Address */
  503. #define DMA2C7COUNT    0xCE        /* DMA channel 7 Base & Current Count    */
  504.  
  505. #define DMARDSTAT    0x08        /* DMA read status            */
  506. #define DMAWRCNTRL    0x08        /* DMA write command register        */
  507. #define DMAWREQ     0x09        /* DMA write request register        */
  508. #define DMAWRSMR    0x0A        /* DMA write single mask reg.        */
  509. #define DMAWRMODE    0x0B        /* DMA write mode register        */
  510. #define DMACLEAR    0x0C        /* DMA clear low/high flip-flop     */
  511. #define DMARDTEMP    0x0D        /* DMA read temp register        */
  512. #define DMAWRCLR    0x0D        /* DMA write master clear        */
  513. #define DMACLRMSK    0x0E        /* DMA clear mask register        */
  514. #define DMAWRALL    0x0F        /* DMA write all mask reg. bits     */
  515.  
  516. #define DMA2RDSTAT    0xD0        /* DMA read status            */
  517. #define DMA2WRCNTRL    0xD0        /* DMA write command register        */
  518. #define DMA2WREQ    0xD2        /* DMA write request register        */
  519. #define DMA2WRSMR    0xD4        /* DMA write single mask register    */
  520. #define DMA2WRMODE    0xD6        /* DMA write mode register        */
  521. #define DMA2CLEAR    0xD8        /* DMA clear low/high flip-flop     */
  522. #define DMA2RDTEMP    0xDA        /* DMA read temp register        */
  523. #define DMA2WRCLR    0xDA        /* DMA write master clear        */
  524. #define DMA2CLRMSK    0xDC        /* DMA clear mask register        */
  525. #define DMA2WRALL    0xDE        /* DMA write all mask register bits    */
  526.  
  527. #define CH0PAGEREG    0x87        /* Channel 0 Page Register        */
  528. #define CH1PAGEREG    0x83        /* Channel 1 Page Register        */
  529. #define CH2PAGEREG    0x81        /* Channel 2 Page Register        */
  530. #define CH3PAGEREG    0x82        /* Channel 3 Page Register        */
  531.  
  532. #define CH5PAGEREG    0x8B        /* Channel 5 Page Register        */
  533. #define CH6PAGEREG    0x89        /* Channel 6 Page Register        */
  534. #define CH7PAGEREG    0x8A        /* Channel 7 Page Register        */
  535.  
  536. /*---------------------====< MISCELLANEOUS DEFINES >====--------------------*/
  537.  
  538. #define LONG(i) (((long)i) & 0xffff)    /* casts int into long & clears high word*/
  539. #define TRUE    -1
  540. #define FALSE    0
  541.  
  542. ;   /*\
  543. ;---|*| end of COMMON.H
  544. ;   \*/
  545.  
  546.